{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Metal Furnace Challenge : Weekend Hackathon #1\n",
    "## Solution By: Rahul Gupta (Rank 2nd on final leaderboard) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Manufacturing of any alloy is not a simple process. Many complicated factors are involved in the making of a perfect alloy, from the temperature at which various metals are melted to the presence of impurities to the cooling temperature set to cool down the alloy. Very minor changes in any of these factors can affect the quality or grade of the alloy produced.\n",
    "\n",
    "Given are 28 distinguishing factors in the manufacturing of an alloy, your objective as a data scientist is to build a Machine Learning model that can predict the grade of the product using these factors.\n",
    "\n",
    "You are provided with 28 anonymized factors (f0 to f27) that influence the making of a perfect alloy that is to be used for various applications based on the grade/quality of the obtained product.\n",
    "\n",
    "Data Description\n",
    "The unzipped folder will have the following files.\n",
    "\n",
    "Train.csv – 620 observations.\n",
    "Test.csv – 266 observations.\n",
    "Sample Submission – Sample format for the submission.\n",
    "Target Variable: grade"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Imported all the essential libraries\n",
    "\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.preprocessing import MinMaxScaler\n",
    "from sklearn.model_selection import StratifiedShuffleSplit\n",
    "from sklearn.ensemble import GradientBoostingClassifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Read the train set and test set\n",
    "\n",
    "train=pd.read_csv(r'C:\\Users\\Rahul\\Desktop\\MachineHack-metalfurnace-classification\\Train.csv')\n",
    "test=pd.read_csv(r'C:\\Users\\Rahul\\Desktop\\MachineHack-metalfurnace-classification\\Test.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Extracting label from training set\n",
    "\n",
    "label=train['grade']\n",
    "train.drop(columns=['grade'],inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Added a new feature\n",
    "\n",
    "train['New']=train['f21']+train['f20']+train['f25']\n",
    "test['New']=test['f21']+test['f20']+test['f25']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Calclulated mean across the colunns for both training and testing set\n",
    "\n",
    "train['Mean']=pd.Series(np.mean(train,axis=1))\n",
    "test['Mean']=pd.Series(np.mean(test,axis=1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Applied MinMaxScaler to scale all the values of training and testing set between 0 and 1\n",
    "\n",
    "mm=MinMaxScaler()\n",
    "train=pd.DataFrame(mm.fit_transform(train))\n",
    "test=pd.DataFrame(mm.fit_transform(test))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "      <th>9</th>\n",
       "      <th>...</th>\n",
       "      <th>20</th>\n",
       "      <th>21</th>\n",
       "      <th>22</th>\n",
       "      <th>23</th>\n",
       "      <th>24</th>\n",
       "      <th>25</th>\n",
       "      <th>26</th>\n",
       "      <th>27</th>\n",
       "      <th>28</th>\n",
       "      <th>29</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.857143</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.442857</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.360000</td>\n",
       "      <td>0.400000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.833333</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.721106</td>\n",
       "      <td>0.856055</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.200267</td>\n",
       "      <td>0.399934</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.721106</td>\n",
       "      <td>0.602399</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.857143</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.442857</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.600267</td>\n",
       "      <td>0.836066</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.428571</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.253333</td>\n",
       "      <td>0.399934</td>\n",
       "      <td>0.854508</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.509615</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.119733</td>\n",
       "      <td>0.196787</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.464132</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 30 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "         0    1    2    3    4         5    6    7    8    9   ...   20   21  \\\n",
       "0  0.857143  0.0  0.0  1.0  1.0  0.442857  1.0  1.0  1.0  0.0  ...  1.0  0.0   \n",
       "1  0.000000  0.0  1.0  0.0  1.0  0.000000  1.0  1.0  1.0  0.0  ...  1.0  0.0   \n",
       "2  0.857143  0.0  0.0  1.0  1.0  0.442857  1.0  1.0  1.0  0.0  ...  1.0  1.0   \n",
       "3  0.428571  0.0  0.0  1.0  0.5  0.000000  1.0  1.0  1.0  0.0  ...  1.0  1.0   \n",
       "4  0.000000  0.0  0.0  1.0  0.5  0.000000  1.0  1.0  1.0  0.0  ...  1.0  1.0   \n",
       "\n",
       "         22        23        24   25        26   27        28        29  \n",
       "0  0.360000  0.400000  0.000000  1.0  0.833333  1.0  0.721106  0.856055  \n",
       "1  0.200267  0.399934  0.000000  1.0  0.000000  1.0  0.721106  0.602399  \n",
       "2  0.600267  0.836066  1.000000  1.0  0.000000  1.0  1.000000  1.000000  \n",
       "3  0.253333  0.399934  0.854508  1.0  0.000000  1.0  1.000000  0.509615  \n",
       "4  0.119733  0.196787  1.000000  1.0  0.000000  1.0  1.000000  0.464132  \n",
       "\n",
       "[5 rows x 30 columns]"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "train.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Converted some of the features into One-Hot-Encoding\n",
    "\n",
    "train=pd.concat([pd.get_dummies(train[[0,4,6,8,10,11,12,13,14,15,16,18,20,25]].astype('category')),train],axis=1)\n",
    "test=pd.concat([pd.get_dummies(test[[0,4,6,8,10,11,12,13,14,15,16,18,20,25]].astype('category')),test],axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Removing all the unnecessary features\n",
    "\n",
    "train.drop(columns=[8,9,11,19,25,26,27],inplace=True)\n",
    "test.drop(columns=[8,9,11,19,25,26,27],inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "label = label.astype('int')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Defined the Cross-Entropy loss function\n",
    "\n",
    "def loss(y_pred,y_true, eps = 1e-30):\n",
    "    y_pred = np.clip(y_pred,eps,1-eps)\n",
    "    return (-(y_true * np.log(y_pred)).sum(axis=1).mean())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "# Used StratifiedShuffleSplit with 5 folds.\n",
    "# Also, this function can be used train the machine learning algorithm provided while calling this function.\n",
    "\n",
    "def splitting(m, train= train, label = label, test = test, random_state = 9):\n",
    "    a = list()\n",
    "    sss=StratifiedShuffleSplit(random_state= random_state,test_size=0.2,n_splits=5)\n",
    "    for tr_index, te_index in sss.split(train,label):\n",
    "        xtrain, xtest = train.loc[tr_index,:], train.loc[te_index,:]\n",
    "        ytrain, ytest = label[tr_index], label[te_index]   \n",
    "        m.fit(xtrain,ytrain)\n",
    "        p = m.predict_proba(xtest)\n",
    "        a.append(loss(p,pd.get_dummies(ytest).values))\n",
    "    pd.Series(m.feature_importances_, index = train.columns).sort_values(ascending=True).plot.barh()\n",
    "    print(np.mean(a))\n",
    "    return(pd.DataFrame(m.predict_proba(test)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.09576929254572453\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 648x1080 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# GradientBoostingClassifier worked far better than the other machine learning models.\n",
    "\n",
    "plt.figure(figsize=(9,15))\n",
    "plt.title('Feature Importance')\n",
    "Final=splitting(GradientBoostingClassifier(n_estimators=100),random_state=40)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "Final.to_excel('SSubmit.xlsx',index=False)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
